home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 11 / Info-Mac_XI_Disc_1.cdr_ / Info-Mac XI Disc 1.cdr / Programs / Science & Math / MacEspresso 1.0 / espresso / sminterf.c < prev    next >
Encoding:
C/C++ Source or Header  |  1989-02-26  |  649 b   |  36 lines  |  [TEXT/R*ch]

  1. #include "espresso.h"
  2.  
  3.  
  4. pset
  5. do_sm_minimum_cover(A)
  6. pset_family A;
  7. {
  8.     sm_matrix *M;
  9.     sm_row *sparse_cover;
  10.     sm_element *pe;
  11.     pset cover;
  12.     register int i, base, rownum;
  13.     register unsigned val;
  14.     register pset last, p;
  15.  
  16.     M = sm_alloc();
  17.     rownum = 0;
  18.     foreach_set(A, last, p) {
  19.     foreach_set_element(p, i, val, base) {
  20.         (void) sm_insert(M, rownum, base);
  21.     }
  22.     rownum++;
  23.     }
  24.  
  25.     sparse_cover = sm_minimum_cover(M, NIL(int), 1, 0);
  26.     sm_free(M);
  27.  
  28.     cover = set_new(A->sf_size);
  29.     sm_foreach_row_element(sparse_cover, pe) {
  30.     set_insert(cover, pe->col_num);
  31.     }
  32.     sm_row_free(sparse_cover);
  33.  
  34.     return cover;
  35. }
  36.